package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.pojo.Role;

/**
 * @author HHF
 * @date 2020/12/24 - 17:11
 * @describe 角色管理服务接口
 */
public interface RoleService {

    /**
     * 分页查询角色
     * @param currentPage
     * @param pageSize
     * @param queryString
     * @return
     */
    PageResult findPage(Integer currentPage, Integer pageSize, String queryString);

    /**
     * 添加角色
     * @param permissions
     * @param menus
     * @param role
     * @return
     */
    void add(Integer[] permissions, Integer[] menus, Role role);

    /**
     * 根据id查询角色
     * @param roleId
     * @return
     */
    Role findById(Integer roleId);

    /**
     * 根据角色id查询角色菜单中间表记录
     * @param roleId
     * @return
     */
    Integer[] findMenusByRoleId(Integer roleId);

    /**
     * 根据角色id查询角色权限中间表记录
     * @param roleId
     * @return
     */
    Integer[] findPermissionsByRoleId(Integer roleId);

    /**
     * 编辑角色
     * @param permissions
     * @param menus
     * @param role
     * @return
     */
    void edit(Integer[] permissions, Integer[] menus, Role role);

    /**
     * 删除角色
     * @param roleId
     */
    void deleteById(Integer roleId);

    /**
     * 根据角色名查角色
     * @param roleName
     * @return
     */
    Role findByName(String roleName);

    /**
     * 根据角色关键字查角色
     * @param roleKeyWord
     * @return
     */
    Role findByKeyWord(String roleKeyWord);
}
